package com.matt.service;


import com.matt.domain.course.CoursePlanClasses;
import com.matt.domain.course.CourseTopic;
import com.matt.foundation.query.ClassesCoursePlanQuery;
import com.matt.foundation.query.CoursePlanQuery;
import com.matt.foundation.query.FamilyCoursePlanQuery;
import com.matt.foundation.vo.course.PadCoursePlanDetailVo;
import com.matt.foundation.vo.course.PadTeacherCoursePlanListVo;
import org.springframework.data.domain.Page;

import java.util.Date;

/**
 * *******************************
 * Created by Ron.
 * form com.matt
 * on 2018/3/13
 * *******************************
 */
public interface CourseNurseryService {

    Boolean createCourseForClasses(String classesId, String areaId, CourseTopic topic);

    Page<PadTeacherCoursePlanListVo> getPadCoursePlanList(ClassesCoursePlanQuery query, Boolean isTestUser);

    Page<PadTeacherCoursePlanListVo> getPadCoursePlanHistory(ClassesCoursePlanQuery query, Boolean isTestUser);

    PadCoursePlanDetailVo getPadCoursePlanDetail(String classesCoursePlanId);

    CoursePlanClasses beginCourse(String courseNurseryId, String[] teacherIds, String staffId, String ticket);

    Boolean delete(String coursePlanId);

    Boolean systemProcessCourse(Date date);

    long getEarlyAndNurseryAllCount(CoursePlanQuery query);

    /**
     * 查询今日课程
     * @param query
     * @param isTestUser
     * @return
     */
    Page<PadTeacherCoursePlanListVo> getPadTodayCoursePlanList(ClassesCoursePlanQuery query, Boolean isTestUser,String type,Boolean isAll);

    /**
     * 查询今日课程
     * @param query
     * @return
     */
    Page<PadTeacherCoursePlanListVo> getPadFamilyTodayCoursePlanList(FamilyCoursePlanQuery query,  String type, Boolean isAll);

    /**
     * 查询今日课程
     * @param query
     * @param isTestUser
     * @return
     */
    Page<PadTeacherCoursePlanListVo> getTodayCourse(ClassesCoursePlanQuery query, Boolean isTestUser);

    /**
     * 查询本周课程
     * @param query
     * @param isTestUser
     * @return
     */
    Page<PadTeacherCoursePlanListVo> getPadWeekCoursePlanList(ClassesCoursePlanQuery query, Boolean isTestUser);

    /**
     * 查询下周课程
     * @param query
     * @param isTestUser
     * @return
     */
    Page<PadTeacherCoursePlanListVo> getPadCourseByNextWeekPlanList(ClassesCoursePlanQuery query, Boolean isTestUser);
    /**
     * 查询康轩今日课程
     * @param query
     * @param isTestUser
     * @return
     */
    Page<PadTeacherCoursePlanListVo> getPadKXTodayCoursePlanList(ClassesCoursePlanQuery query, Boolean isTestUser);

    /**
     * 查询康轩本周课程
     * @param query
     * @param isTestUser
     * @return
     */
    Page<PadTeacherCoursePlanListVo> getPadKXWeekCoursePlanList(ClassesCoursePlanQuery query, Boolean isTestUser);

    /**
     * 查询康轩下周课程
     * @param query
     * @param isTestUser
     * @return
     */
    Page<PadTeacherCoursePlanListVo> getPadKXCourseByNextWeekPlanList(ClassesCoursePlanQuery query, Boolean isTestUser);
}
